//
//  main.m
//  OC4_属性&字符串
//
//  Created by dllo on 15/10/27.
//  Copyright (c) 2015年 dllo. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

//    // 1, 创建&初始化
//    NSString *str1 = [[NSString alloc] initWithString:@"qingC"];
//
//    NSString *str2 = [NSString stringWithString:@"qingC"];
//    
//    // 字面量, 常用写法
//    NSString *str3 = @"qingC";
////
////    
////    // 实用方法 - 常用作不同类型变量转换为NSString * 类型
//    NSString *str4 = [NSString stringWithFormat:@"QC%d%@", 2, str3];
//    NSLog(@"%@", str4);
    
    
    // 2, 长度
//    NSLog(@"%ld", str3.length);        // NSLog(@"%ld", [str3 length]);
    
    // 3, 子串 - sub
//    NSString *strVal = @"qingChuner";
////     从那个下标处开始 - 结果返回到str5中
////     注意下标从0开始
//    NSString *str5 = [strVal substringFromIndex:2];
//    NSLog(@"%@", str5);
    
//    NSString *str6 = [strVal substringToIndex:5];
//    NSLog(@"%@", str6);
//
//    // 按范围取字串
//    // 注意, 1, NSRange为结构体类型; 2, {2, 3} - 2:起始位置 3:长度
//    NSRange range = {2, 3};
//    NSString *str7 = [strVal substringWithRange:range];
//    NSLog(@"%@", str7);
    

    // 4, 拼接 - append
//    NSString *strVal = @"qingChuner";
////    NSString *str8 = [strVal stringByAppendingString:@"qqqqq"];
//    NSString *str9 = [strVal stringByAppendingFormat:@"%@%d", strVal,3];
//    NSLog(@"%@", str9);
    
    
    // 5, 替换 - replace
//    NSString *strVal = @"qingChun";
////    // 替换所有与指定字符串相匹配的字符串
////    NSString *str10 = [strVal stringByReplacingOccurrencesOfString:@"ing" withString:@"www"];
////    NSLog(@"%@", str10);
//    NSRange range = {2, 3};
//    // 替换指定范围的字符串
//    NSString *str11 = [strVal stringByReplacingCharactersInRange:range withString:@"aaaa"];
//    NSLog(@"%@", str11);
    
    // 6, 判断比较
//    NSString *strVal = @"qingChuning";
//    
//    // 判断相等 - 使用频率很高
//    BOOL ret = [strVal isEqualToString:@"aaa"];
//    NSLog(@"%d", ret);
//
//    // 判断大小(包括相等)
//    NSComparisonResult ret1 = [strVal compare:@"aaa"];
//    NSLog(@"%ld", ret1);
//    
//    
//    // 很实用的方法
//    // 判断开头
//    BOOL ret2 = [strVal hasPrefix:@"qi"];
//    NSLog(@"%d", ret2);
//    
//    // 判断结尾
//    BOOL ret3 = [strVal hasSuffix:@"ing"];
//    NSLog(@"%d", ret3);
    
    
    // 7,转换
    
//    // 字符串类型转换成其他类型
//    NSString *strVal = @"2";
//    // doubleValue    floatValue     integerValue    longLongValue   boolValue 等等
//    // 注意 其他类型转字符串类型用"...format"的方法  (NSString stringWithFormat)
//    int ret = [strVal intValue];
//    NSLog(@"%d", ret);
    
    
//    // 大小写转换
//    NSString *strVal = @"qingChuning";
//    
//    // 转小写
//    NSString *str12 = [strVal lowercaseString];
//    NSLog(@"%@", str12);
//    
//    // 转大写
//    NSString *str13 = [strVal uppercaseString];
//    NSLog(@"%@", str13);
//    
//    // 首字母转大写
//    // 注意,不仅将首字母转大写,还将其他字母转小写
//    NSString *str14 = [strVal capitalizedString];
//    NSLog(@"%@", str14);
    
    
//    给定一个图片文件名，判断字符串中是否以“png”结尾，如果是就替换成“jpg”，如果不是，就拼接”.jpg”。
    
    NSString *strVal = @"wer222.jpg";
    NSString *str = nil;          // 建一个空的字符串
    if ([strVal hasSuffix:@".png"]) {
        str = [strVal stringByReplacingOccurrencesOfString:@".png" withString:@".jpg"];
    } else {
        str = [strVal stringByAppendingString:@".jpg"];
    }
    NSLog(@"%@", str);
    
    
    
    // 可变字符串 - 改变的是同一空间的内容;  不可变字符串,一旦创建后就不可改变,若想操作需要将改变结果移到新的空间并返回
//    NSMutableString *strVal = [NSMutableString stringWithFormat:@"qingChun"];
//    
//    // 插入
//    [strVal insertString:@"aaa" atIndex:2];
//    NSLog(@"%@", strVal);
//    
//    // 拼接
//    [strVal appendString:@".jpg"];
//    NSLog(@"%@", strVal);
//    
//    // 格式化拼接
//    [strVal appendFormat:@"%d", 2];
//    NSLog(@"%@", strVal);
//    
//    // 删除
//    NSRange range = {2, 3};
//    [strVal deleteCharactersInRange:range];
//    NSLog(@"%@", strVal);
    
    
    return 0;
}
